package com.sdry.service.jyy.plan;
import java.util.List;

import com.sdry.model.jyy.plan.Needs;
import com.sdry.model.jyy.plan.Plan2t;
import com.sdry.model.jyy.plan.PlanDetail;
import com.sdry.model.plan.DispatchBillDetail;
/**
 *
 *@ClassName: Plan2tService
 *@Description: 生产计划
 *@Author llm
 *@Date 2019-07-02 17:32:04
 *@version 1.0
*/
public interface Plan2tService {
	/** 
	 * 根据主键id查询实体
	 * @param id 主键id
	 * @return 实体
	*/
	public Plan2t queryById(Long id);
	/** 
	 * 条件查询所有
	 * @param param 实体条件
	 * @return 实体集合
	*/
	public List<Plan2t> queryAllByMution(Plan2t param);
	/** 
	 * 条件分页查询
	 * @param param 实体条件
	 * @return 实体集合
	*/
	public List<Plan2t> findPageByMution(Plan2t param);
	/** 
	 * 条件查询记录数
	 * @param param 实体条件
	 * @return 实体集合
	*/
	public Integer selectCountByMution(Plan2t param);
	/** 
	 * 插入返回id
	 * @param param 实体条件
	 * @return 主键id
	*/
	public Long insert(Plan2t param);
	/** 
	 * 根据主键更新 返回影响行数
	 * @param param 实体条件
	 * @return 影响行数
	*/
	public Integer update(Plan2t param);
	/** 
	 * 根据主键拼接的字符串删除返回影响行数
	 * @param ids 主键拼接的字符串
	 * @return 影响行数
	*/
	public Integer delete(String ids);
	/**   
	 * 根据产品BOM查物料
	 * @param productId
	 * @return             
	 */
	public List<DispatchBillDetail> findMaterielByProductBom(Long productId);
	/**   
	 * 查物料库存
	 * @param materielId
	 * @return             
	 */
	public Integer getInventoryByMaterielId(Long materielId);
	
	/**
	 * 根据车型id查bom
	 * @param pid车型
	 * @return
	 */
	public List<Needs> selectBomBypid(PlanDetail planDetail);
}
